package com.yidian.service;

import com.yidian.common.entity.Result;
import com.yidian.dto.LoginDto;
import com.yidian.entity.Channel;
import com.yidian.entity.User;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface UserService {


    /**
     * 发送短信
     * @param telephone
     * @param authCode
     * @return
     */
    Result sendSms(String telephone, String authCode);

    List<User> selectByExample(LoginDto loginDto);

    /**
     * 通过ID获取用户信息
     * @param userId
     * @return
     */
    User selectByUserId(Long userId);

    /**
     * 注册
     * @param loginDto
     * @return
     */
    Result register(LoginDto loginDto);

    /**
     * 登录
     * @param loginDto
     * @param use
     * @return
     */
    Result login(LoginDto loginDto,User use);

    /**
     * 根据用户ID查询该用户的频道信息
     * @param id
     * @return
     */
    List<Channel> selectChannelByUserId(long id);

    /**
     * 关注用户
     * @param upId
     * @param id
     * @return
     */
    int addFollow (long upId, long id);

    /**
     * 根据ID取消关注的用户
     * @param upId
     * @param id
     * @return
     */
    int deleteFollow(long upId, long id);

    /**
     * 根据指定用户id获取该用户信息
     * @param id
     * @return
     */
    User selectByPrimaryKey(Long id);

    /**
     * 修改用户资料
     * @param user
     * @return
     */
    int updateUserByUserId(User user);

    /**
     * 更新用户图片
     * @param id
     * @param imgFile
     * @return
     */
    int updatePhotoByUserId(long id, MultipartFile imgFile);


}
